home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
mac
/
LOGIC Apple II 5.25" Library - DOS Part 1
/
DOS002.dsk
/
ANY BASE NUMBER CONVERSION.bas
< prev
next >
Wrap
BASIC Source File
|
2012-02-16
|
1KB
|
42 lines
50 HOME
100 PRINT "*** BASE CONVERSION ROUTINE ***"
110 REM WRITTEN BY EASTON BEYMER
150 PRINT " "
200 INPUT "INPUT BASE: ";BI%
210 IF BI% <2 OR BI% >16 THEN 600
220 INPUT "INPUT NUMBER: ";NI$
300 INPUT "OUTPUT BASE: ";BO%
310 IF BO% <2 OR BO% >16 THEN 600
400 GOSUB 10000
410 PRINT "OUTPUT NUMBER=";NO$
500 GOTO 150
600 PRINT "BASE NOT IN RANGE OF 2 TO 16": GOTO 150
10000 REM BASE CONVERSION SUBROUTINE
10100 REM CONVERT TO DECIMAL
10150 L% = LEN(NI$)
10200 DEC = 0
10300 PWR% = 0
10400 FOR J = L% TO 1 STEP -1
10500 K% = ASC( MID$ (NI$,J,1))
10700 IF K% >64 THEN K% = K% -7
10800 K% = K% -48
10810 IF K% <BI% AND K% > -1 THEN GOTO 10900
10820 PRINT "INVALID INPUT FOR BASE ";BI%
10840 NO$ = "????"
10850 RETURN
10900 DEC = DEC +K% *BI% ^PWR%
11000 PWR% = PWR% +1
11100 NEXT J
11110 REM CONVERT DECIMAL TO BASE #
11120 H$ = "0123456789ABCDEF"
11130 NO$ = ""
11200 PWR% = LOG(DEC)/ LOG(BO%)
11300 FOR J = PWR% TO 0 STEP -1
11310 XX = INT(BO% ^J)
11320 CH% = DEC/XX
11500 NO$ = NO$ + MID$ (H$,CH% +1,1)
11600 DEC = INT(DEC -CH% *XX)
11700 NEXT J
11800 RETURN
11900 END
19999 REM THIS PROGRAM CAME FROM NEWTON'S TREE